package com.bdqn.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;

// 用户表
//使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类（和数据表映射的类）
@Table(name = "smbms_user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user(类名首字母小写)；
@Data
public class User {
    @Id //这是一个主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键
    private  int id ;   //id
    @Column(name = "username")  //省略的话 默认类名就是属性名
    private  String userName; //用户姓名
    @Column(name = "usercode",length = 50) //这是和数据表对应的一个列
    private  String userCode; //用户编码
    @Column(name = "userpassword")  //省略的话 默认类名就是属性名
    private  String userPassword; //用户密码
    @Column  //省略的话 默认类名就是属性名
    private  int gender; // 性别  (1女  2男)
    @Column  //省略的话 默认类名就是属性名
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;  //出生日期
    @Column  //省略的话 默认类名就是属性名
    private  String phone; //手机号码
    @Column  //省略的话 默认类名就是属性名
    private  String address; //地址
    @Column  //省略的话 默认类名就是属性名
    private  int createdBy; //创建者
    @Column  //省略的话 默认类名就是属性名
    private  Date creationDate; //创建时间
    @Column  //省略的话 默认类名就是属性名
    private  int modifyBy; //更新者
    @Column  //省略的话 默认类名就是属性名
    private  Date modifyDate; //更新时间

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", userCode='" + userCode + '\'' +
                ", userPassword='" + userPassword + '\'' +
                ", gender=" + gender +
                ", birthday=" + birthday +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                ", createdBy=" + createdBy +
                ", creationDate=" + creationDate +
                ", modifyBy=" + modifyBy +
                ", modifyDate=" + modifyDate +
                '}';
    }
}
